<!--
 * @ Author: 舒克
 * @Official Accounts: 氧化1028
 * @ email: 143587623@qq.com
 * @github: https://gitee.com/KingSio
 * @Date: 2021-03-18 23:31:18
 * @LastEditTime: 2021-03-19 00:00:06
 * @FilePath: \一般用于源码\source-notes\源码记录\Promise和AsyncAwait\promiseAjax.html
-->
<!DOCTYPE html>
<html>

<head>
	<meta charset="UTF-8">
	<title></title>

</head>

<body>
	<script type="text/javascript">
		var httpUrl = "https:api.apiopen.top/getJoke?page=2&count=3&type=videp";
		
		//封装Promise的Ajax
		function getAjax(url){
			return new Promise((resolve, reject) => {
				var xhr = new XMLHttpRequest()
				//设置路径
				xhr.open("GET", url)
				//3监听
				xhr.onreadystatechange = function () {
					//xhr.status==200(200特指交易成功)，readyState==4(4特指响应已经完成)
					if (xhr.status == 200 && xhr.readyState == 4) {
						///处理获取得到的结果
						resolve(xhr)
					} else if (xhr.readyState == 4 && xhr.status != 200) {
						//处理失败的结果
						reject(xhr)
					}
				}
				//4发送
				xhr.send()
			})
		}

	
		console.log(getAjax(httpUrl))		
		//返回的是一个Promise，如果需要拿到数据源，需要then
		getAjax(httpUrl).then(function(res) {
			var result = JSON.parse(res.response)
			console.log(res)
			console.log(result)
		}).catch(function(err) {
			console.log(res)
		})


			//第二种方法
			//Ajax已经封装在fetch方法中了，
			// fetch(httpUrl).then(function(res){
			// 	console.log(res)
			// 	var result=res.json(
			// 		result.then(function(result){
			// 			console.log(result)
			// 		})


			// })
	</script>

</body>

</html>